import unittest
from python.unit.MathFunction_UnitTest_03 import MyTestCase
from python.unit import MathFunction_UnitTest_03
from BeautifulReport import BeautifulReport as br

if __name__ == '__main__':
    """
        1、如果在进行测试 时，想要按照 特定顺序执行 
            1、 使用 测试集
    """
    suite = unittest.TestSuite()

    tests = [
        MyTestCase("test_add"),
        MyTestCase("test_less"),
        MyTestCase("test_devide"),
        MyTestCase("test_mutle")
    ]

    # 逐个 添加 测试用例中的测试方法
    suite.addTests(tests)
    suite.addTest(MyTestCase("test_mutle"))
    # 将整个模块中的 东西全部 加进 测试集中

    suite.addTest(unittest.TestLoader().loadTestsFromName("MathFunction_UnitTest_03.MyTestCase"))
    suite.addTest(unittest.TestLoader().loadTestsFromNames([
        "MathFunction_UnitTest_03.MyTestCase",
        "MathFunction_UnitTest_03.MyTestCase",
    ]))

    suite.addTest(unittest.TestLoader().loadTestsFromTestCase(MyTestCase))

    suite.addTest(unittest.TestLoader().loadTestsFromModule(module=MathFunction_UnitTest_03))

    #  如果 我们想要将 上面测试 的报告输出到 本地磁盘中？
    """
        如果 我们想要将 测试报告输出？
        1、输出成 TXT
        2、输出成 Html 文件
            1、使用官方报告模板
            2、第三方报告模板
    """
    # # 输出成 TXT
    # file_path = open(file="MathFunction_UnitTest_suite_reporter_07.txt", mode="a")  # append 追加
    #
    # run = unittest.TextTestRunner(verbosity=2, stream=file_path)
    # run.run(suite)

    """
    2、输出成 Html 文件
            1、使用官方报告模板
            1 下载模块  漂亮报告  BeautifulReporter
    """
    runner = br(suite)
    runner.report(description="计算器的测试用例", filename="MathFunction_UnitTest_suite_reporter_07.html")
